A portion of the disclosure of this patent document, including appendices, contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
1. Technical Field
The present invention relates generally to networked client/server and multimedia systems, and particularly to a standardized interface for high level software which is independent of the operating system and network.
2. Background Art
Interactive television systems are being developed and tested by various telephone and cable companies. These systems will allow users to interact with large computer systems operated by the telephone and cable companies via their television sets. The potential for interactive television is great. Users of the systems will be able to access movies on demand, pay bills, bank, shop, place orders, make reservations, participate in interactive games and forums, access informational data bases and perform numerous other functions in addition to accessing the traditional television stations.
The interactive systems are designed to allow for two-way digital communication between the providing company, also known as the contact provider, and the user. In the systems under development by the telephone companies, the communication will be accomplished over existing telephone lines. However, as mentioned, the communication will be digital, not analog, which will allow for much higher data transfer rates which are required, for example, to access a movie. The use of the telephone lines for two-way multi-media interaction has been called video dial tone. In the case of the systems being developed by the cable companies, the existing cable line will be used. As with the telephone systems, the communication will be two-way and will be digital. Appropriately, the cable based interactive television systems have been referred to as digital two-way cable. In both the telephone and cable systems, the communication can be a combination of digital and analog signals.
The goal of the systems is to provide a user friendly interface at the user end. The systems require that the user have a computer/decoder similar to the need for having a cable decoder in traditional cable systems. These computer/decoders for the interactive television systems have become known as set top boxes referring to the fact that these boxes will be set on top of the television set, or at least in close proximity. Each set top box will include a remote control which will provide for the user interface and interaction between the user and the interactive television system. Other input devices can also be used to customize the manner in which selections are made. Thus, the user will access the services of interactive television, make decisions, enter choices, play games and the like using the remote control and other input devices.
For example, a user may decide that she wishes to watch a movie. Using the remote control, the user will select the movie category from an option menu. The user then makes appropriate selections from the menu driven choices, using the remote control, until she has selected the particular movie she wishes to watch. At this point the interactive television system accesses the information for this movie and prepares to begin downloading it, segment by segment, to the set top box. At the user end, the remote control now functions similarly to a remote control for a VCR. Thus the user can play, pause, rewind and fast forward. The set top box controls the two-way communication. It sends the commands from the user to the interactive television system as well as accepts the digitized movie information, encoded in MPEG (Motion Picture Experts Group) or MPEG 2 format, for example, and converts it into a format acceptable to the television such as NTSC, PAL, HDTV or SECAM.
In the case of users placing orders, and for illustrative purposes, the specific example of a user placing a food order, the user might select, utilizing the remote control, the restaurant selection from an options menu. In well developed systems, the user could then select the listing of restaurants by some sort of preference. For example, the user may select by type of cuisine, by restaurants offering carry-out or delivery, in order of proximity to the user, alphabetically within a certain radius of the user, and so on. If the user selects pizza restaurants offering delivery, the appropriate list will be displayed for the user. The user then selects the particular restaurant, type of pizza, payment method, preference for delivery time, maximum wait time and any other relevant information for which the system prompts. The system will then automatically place the order with the pizza restaurant.
The basic components of the interactive television system include the television, the set top box, the network and the servers. As described above, the set top box is connected to the television and the network and decodes the information received from the network as well as sending information to the network. Numerous servers are also connected to the network. These servers are accessed by the set top box in order to accomplish the interactive services discussed above. For example, the set top box may access one particular server via the network if the user desires to watch a movie and may access another server if the user wishes to place a dinner order.
The set top box is a digital computer device on which application programs are run. As a digital computer device, the set top box includes an operating system such as Microware System Corporation""s OS-9, OS-9000 or DAVID Operating System which is essentially an operating system based either on OS-9 or OS-9000 with additional system modules necessary in an interactive television environment. Additionally, numerous other operating systems exist. Each operating system may operate under a unique protocol which is to say that each operating system may have its own unique set of system calls. Likewise, each network and each server may have its own protocol.
The interactive television system is a networked multimedia system, specifically, and a networked client/server, generally. The television is the client and accesses the servers via the network. Many other communication environments utilize the networked client/server arrangement. In many of these environments the client is an intelligent communication device which is capable of running application or high-level software.
In typical client/server systems and as with personal computers, the application program must be written dependent upon the particular operating system. Additionally, the application program must be written dependent upon the particular network and server. Therefore, application software developers must create different versions of their software for each combination of operating system, network and server. Because of the great number of operating system, network and server permutations, the application software developers are highly burdened as they seek to provide software for each possible system combination. As a practical matter, many platform combinations will be left without a compatible application program. This problem is not limited to the interactive television environment but also exists any virtually any networked, client/server environment.
Thus, generally, there is a need for an application interface in an intelligent communication device which allows for application software developers to develop application programs in a manner independent of the operating system and of the network and, specifically, a need for an application interface for use in an interactive television environment.
The present invention relates generally to networked client/server and multimedia systems, and particularly to a standardized interface for high level software which is independent of the operating system and network. The networked client/server or multimedia system such as an interactive television system includes a television, a set top box or decoder, a network and at least one server attached to the network. Typically, numerous servers will be connected to the network and accessible to the set top box via the network. The television and set top box could also be a computer and a monitor. Additionally, the standardized interface of the present invention can be contained and utilized in other intelligent devices which are part of a networked, client/server system such as cellular telephones, personal digital assistants (PDA""s), personal computer/work station environments, smart phones, pagers and wireless communication networks. It should be understood that in some network environments, the server for one particular client may be another client. For example, in a cellular telephone system the client is a cellular telephone and the server is another cellular telephone which is also a client. Thus in some circumstances, while still accurately described as two separate client/server connections via a network, it may be easier to understand the communication structure by viewing it as two clients connected by a network.
In the interactive television environment, the set top box is a digital computer device and includes an operating system. The operating system is either resident in the set top box or is downloaded from the network. Application programs are software programs which run on the set top. The application programs access servers via the set top box, its operating system and the network to provide the various services available on an interactive network. Similarly, in other networked, client/server systems, application programs or system modules may be downloaded to various other intelligent devices. For example, a PDA might access servers in a similar manner.
The present invention includes an application program interface functionally positioned between the application and the operating system. The application program interface includes an application interface portion and an operating system interface portion. The application interface portion receives input/output (I/O) calls from the application program which has been written in a standardized format. The application interface portion is operating system and network independent.
The operating system interface portion receives the standardized I/O calls from the application interface portion and translates them into the appropriate calls for the particular operating system in use on the set top box. The operating system interface portion is operating system dependent. Thus, the application program interface with its operating system dependent operating interface portion allows an application program to be written using standardized system calls which are independent of the operating system.
The present invention also includes a media control layer functionally positioned between the operating system and the network. The media control layer receives operating system I/O calls from the operating system and translates the data or requests into a message or packet the network will understand. Use of the media control layer allows application program and operating system operation in a manner which is independent of the network requirements. A network device driver can also be included functionally positioned between the network and the media control layer. The network device drive is responsible for the hardware communication control between the set top box and the network.
In another embodiment of the present invention, the application program interface and the media control layer are divided into separate functionality modules. These modules include channel control management, network call control and binary large object (BLOB) download control.
The other intelligent devices discussed above utilize the application program interface in a similar manner with their own specific implementation of the application program interface of the present invention. The specific implementation depends upon various factors including the type of information being transmitted, the type of communication, and whether the communication is one-way or two-way.
Applications that use the application program interface of the present invention become portable across intelligent devices. For instance, a navigation application in an interactive television environment that a set top box accesses to look at routes for a vacation might be the same application used to communicate with a mobile radio to send street and address information to a delivery truck.
An object of the present invention is to provide an application program interface for an intelligent device which includes an operating system that can communicate with a network.
Another object of the present invention is to provide an application program interface for an interactive television or multimedia networked system.
A further object of the present invention is to provide an application program interface for an interactive television, multimedia or client/server networked system that allows application programs to be written with a standardized set of input/output calls.
Another object of the present invention is to provide an application program interface for an interactive television, multimedia or client/server networked system that allows application programs to be written independent of the operating system on which they will run.
Still another object of the present invention is to provide an application program interface for an interactive television, multimedia or client/server networked system that allows application programs to be written independent of the network on which they will access servers.
Other objects, advantages, and novel features of the present invention will become apparent from the following detailed description of the invention when considered in conjunction with the accompanying drawings.